As use of network services becomes more prevalent in distributed computer networks, secure authentication of a computer user increases in importance. Authentication is required to prevent unauthorized use and abuse of network services. Authentication services typically require the user to verify his or her identity to the network service provider to determine whether that user is authorized to use a computer to access the network.
An authorization mechanism defines who is allowed to do what on a computer. Two computer authorization mechanisms for typical operating systems are privileges and object access control. Users granted a specific privilege can perform an action that is denied to users who do not have the privilege. Typically, privileges are not evaluated on a per-object basis. Instead, a privilege is applied in general to an action for a user. For example, the root user in most UNIX operating systems has a set of privileges associated with authorized actions. The “WINDOWS NT” operating system supports the grant of a set of privileges on a per-user or user group basis.
When access control is required for a particular object, such as a file, a form of authorization other than a general privilege can be used to define a permission to access the object on a per user basis. Object access control can specify, for each object, different access permissions for different users. For example, on a UNIX system, the “chmod” command allows the user to specify read, write, and execute permissions for the owner, the group, and the world. The “WINDOWS NT” operating system uses a discretionary access list that grants control permissions for different users.
Both authorization methods support the control of computer actions based on the identity of the user. The user's identity establishes the privileges and the objects that she can access via a computer. Establishing the identity of the user is crucial to security and control in a computer network and is the role of the authentication process.
There are three branches of authentication technology in common use today to assist verification of the identity of the user. Shared secret (password) technology is one; public key technology is a second; and biometric technology is a third. Conventional authentication involves confirming the user's identity by (1) verifying a shared secret, such as a password, (2) using public/private key encryption and verifying that the user knows the private key, or (3) using unique biometric information about the user, such as fingerprints, retinal patterns, or voice prints. All three technologies revolve around the fundamental principle of credentials. A credential is information useful to establish the identity of a computer user. An authenticating service requests credentials from the user to support a decision about the identity of the user based on the credentials.
In many organizations and homes today, users operate a workstation, which makes requests for a network service available on a computer network. The workstation is important in authentication for two reasons. First, the workstation is a platform from which the user can access resources, including network services, on the network. Users authenticate and connect to network services from their workstations. Second, the workstation can be silently compromised by an unauthorized party. A “silent” compromise is one that the user cannot easily detect without the aid of external security auditing tools. Silent compromise is typically accomplished by installing a compromise tool called a “root kit” or a “backdoor” on the workstation. For example, current “hacker” software can be used to obtain the customer's password by logging keystrokes or browser screenshots can be taken to intercept SSL-protected HTTP traffic.
An intruder may compromise the integrity of a workstation, or a workstation may be misconfigured so that compromise is possible. The use of a network service may be compromised when a user accesses a network service from a compromised workstation. This subjects the network service to unauthorized use and abuse by the intruder on a valid user's workstation.
The effect of a compromised workstation is the potential violation of security mechanism that assumes the workstation is “trusted”, including password-based authentication and some forms of biometric authentication. Smart card authentication implementations also can be subverted if the workstation's Trusted Computer Base is subverted. For example, a user's credentials, such as password and biometric credentials, can be stolen or rogue code can be executed that impersonates the logged-on user.
Host assessment and authentication is relevant to the Internet environment because most Web clients are currently desktop machines. These machines are capable of being compromised, and are frequent targets of compromising attacks. Some Web sites attempt to verify the security of the client host by performing a security assessment before allowing transactions from that host.
For example, online banking applications are typically implemented by Web sites that allow customers to view account balances and pay bills. Customers and insurers want assurances that only the customer can perform transactions, and that the transactions are confidential. Current techniques include password authentication to verify that only the customer has access to their account, and SSL or PCT encryption to verify that there is no “man in the middle” capable of intercepting the network traffic.
In view of the foregoing, there is a need for a way for verifying the integrity of the workstation prior to granting access to and determining the level of a network service. The present invention solves the security compromise problem by providing assurances to the Web site operator (and their insurer) that the user's workstation has not been compromised or is easily compromised. The invention can accomplish this desirable objective by scanning the user's workstation for evidence of compromise and vulnerabilities that could lead to compromise. For example, when a user signs on to a Web site, the scan can be completed as part of the authentication process.